<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>map和reduce</title>
	</head>
	<body>
	</body>

	<script>
		// 数组中新增了map和reduce方法
		// map(): 接受一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回. 
		let arr = ["1", "2", "3"];
		let arr1 = arr.map((item) => {
			return item + 2;
		});
		let arr2 = arr.map(item => item + 2);
		console.log(arr1);
		console.log(arr2);



		//reduce()  为数组中的每一个元素依次执行回调函数,不包含数组中被删除的元素或者从未被赋值的函数
		// [2,40,3,4]
		// arr.reduce(callback,[initialValue]);

		/**
		 * 1. previousValue 上一次调用回调返回的值, 或者是提供的初始的值(initialValue)
		 * 2. currentValue  数组中当前被处理的元素
		 * 3. idnex 当前元素在数组中的索引
		 * 4. array 调用 reduce的数组
		 */


		let result = arr.reduce((a,b) => {
			console.log("上一次处理后:" + a);
			console.log("当前正在处理:" + b);
			return a + b;
		}, 100);
		console.log(result);
	</script>
</html>
